<!DOCTYPE html>
<html lang="en-us">

  <head>
  <meta charset="utf-8">
  <meta name="robots" content="all,follow">
  <meta name="googlebot" content="index,follow,snippet,archive">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  
  <title>Modern Rendering engine</title>
  <meta name="author" content="Yiwen Xue" />
  
  
  
  
  <meta name="keywords" content="yiwen xue, cruelworld, cruel, Engine">
  
  
  <meta name="description" content="Site template made by yiwenxue using hugo">

  <meta name="generator" content="Hugo 0.81.0" />

  
  <link href='//fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,500,700,800' rel='stylesheet' type='text/css'>

  
  <link rel="stylesheet" href="//use.fontawesome.com/releases/v5.11.2/css/all.css">
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

  
  <link href="/css/animate.css" rel="stylesheet">

  
  
    <link href="/css/style.marsala.css" rel="stylesheet" id="theme-stylesheet">
  

  
  <link href="/css/custom.css" rel="stylesheet">

  
  
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  

  
  <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon" />
  <link rel="apple-touch-icon" href="/img/apple-touch-icon.png" />

  
  <link href="/css/owl.carousel.css" rel="stylesheet">
  <link href="/css/owl.theme.css" rel="stylesheet">

  
  <link rel="alternate" href="https://the-cruel-world.github.io/index.xml" type="application/rss+xml" title="The Cruel World">

  
  
  
  
  
  
  <meta property="og:updated_time" content="2021-03-06T15:34:40&#43;0200">
  
    <meta property="article:publisher" content="https://www.facebook.com/https://www.facebook.com/HANDLE/">
    
    
    
    
    <meta property="article:published_time" content="2021-03-06T15:34:40&#43;0200">
    <meta property="article:modified_time" content="2021-03-06T15:34:40&#43;0200">
  

  
  <meta name="twitter:card" content="summary">
  <meta name="twitter:site" content="@GoHugoIO">
  <meta name="twitter:title" content="Modern Rendering engine">
  
  <meta name="twitter:description" content="Site template made by yiwenxue using hugo">
  

</head>


  <body>

    <div id="all">

        <header class="navbar-affixed-top" data-spy="affix" data-offset-top="62">
    <div class="navbar navbar-default yamm" role="navigation" id="navbar">    
        <div class="container">
            <div class="navbar-header">
                <a class="navbar-brand home" href="/">
                    <img src="/img/logo.png" alt="Modern Rendering engine logo" class="hidden-xs hidden-sm">
                    <img src="/img/logo-small.png" alt="Modern Rendering engine logo" class="visible-xs visible-sm">
                    <span class="sr-only">Modern Rendering engine - go to homepage</span>
                </a>
                <div class="navbar-buttons">
                    <button type="button" class="navbar-toggle btn-template-main" data-toggle="collapse" data-target="#navigation">
                      <span class="sr-only">Toggle Navigation</span>
                        <i class="fas fa-align-justify"></i>
                    </button>
                </div>
            </div>
            

            <div class="navbar-collapse collapse" id="navigation">
                <ul class="nav navbar-nav navbar-right">
                  
                  
                  
                  <li class="dropdown">
                    
                    <a href="/">Home</a>
                    
                  </li>
                  
                  
                  <li class="dropdown active">
                    
                    <a href="/blog/">Blog</a>
                    
                  </li>
                  
                  
                  <li class="dropdown">
                    
                    <a href="/faq/">FAQ</a>
                    
                  </li>
                  
                  
                  <li class="dropdown">
                    
                    <a href="/contact/">Contact</a>
                    
                  </li>
                  
                </ul>
            </div>
            

            <div class="collapse clearfix" id="search">    
                <form class="navbar-form" role="search">
                    <div class="input-group">
                        <input type="text" class="form-control" placeholder="Search">
                        <span class="input-group-btn">
                    <button type="submit" class="btn btn-template-main"><i class="fas fa-search"></i></button>
                </span>
                    </div>
                </form>
            </div>
            
        </div>
    </div>
</header>




        <div id="heading-breadcrumbs">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <h1>Modern Rendering engine</h1>
            </div>
        </div>
    </div>
</div>


        <div id="content">
            <div class="container">

                <div class="row">

                    

                    <div class="col-md-9" id="blog-post">

                        
                          <p class="text-muted text-uppercase mb-small text-right">
                            
                            
                            March 6, 6063
                          </p>
                        

                        <div id="post-content">
                          <h1 id="modern-rendering-engine">Modern Rendering engine</h1>
<h2 id="advanced-real-time-render">Advanced Real-time Render</h2>
<ol>
<li><a href="http://advances.realtimerendering.com/">Advances in Real-Time Rendering in 3D Graphics and Games</a></li>
<li><a href="http://advances.realtimerendering.com/s2019/index.htm">Creating the Atmospheric World of <em>Red Dead Redemption 2</em>: A Complete and Integrated Solution</a></li>
<li><a href="https://gist.github.com/reinsteam/f8ec46fc2a4b3fbfc5dccdf0e34b2899">atmosphere / clouds rendering</a></li>
<li><a href="https://www.jendrikillner.com/post/">Summary of articles/conferences on rendering</a></li>
<li><a href="http://games-cn.org/previouswebinar-ppt/">games-cn conferences</a></li>
<li><a href="http://www.realtimerendering.com/">Real Time Rendering</a></li>
<li><a href="https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/">writing an efficient render</a></li>
<li><a href="https://vkguide.dev/">extremely efficient render using vulkan</a></li>
</ol>
<h2 id="9-core-rendering-engine-techniques-used-in-3d-model-design">9 Core Rendering Engine Techniques Used in 3D Model Design</h2>
<ol>
<li>
<p>Shading
Shading is the process of producing levels of light, darkness, and color onto objects in a rendered image. When a scene has a light source, be it a lamp, sun object, or emission material, shaders can be employed to process a myriad of special graphic effects. You can augment the position and color of all pixels on an object, including more complex operations like hue, saturation, and brightness.</p>
<p>Your 3D modeling program will also have the options of flat shading and smooth shading. Flat shading is a type of shading that is evaluated only once for each polygon or vertex of an object or model’s surface, resulting in the object’s corners appearing sharp. Smooth shading evaluates shading from pixel to pixel, making a seemingly smooth transition between the polygons of an object.</p>
<p>Other types of specific shaders include vertex shaders, primitive shaders, and geometry shaders, which perform specific tasks allowing for different effects and visuals. <strong>Though very impressive, shaders are processor-intensive operations.</strong> Even on simply lit models, they are written to apply to objects no matter what coordinates or position they may be in within a scene or environment. Shaders can easily bog down a CPU and slow it to a crawl if consistently used, so shader operations are now usually regulated to the GPU, allowing for more control when modifying materials or textures.</p>
<p>Shaders are used mostly for VFX post-processing in film and television, CGI imagery, and video game design, and are usually the first step when trying to make a scene or an object appear believably real or manifesting jaw-dropping visual effects.</p>
</li>
<li>
<p>Ray Tracing
Ray tracing is the technique of rendering a scene’s imagery by tracing the paths of a light source, or rays, as pixels while simulating the behaviors of natural light and its properties when interacting with other objects. This technique attempts to mimic real-world light properties using processes like diffusion, reflection, shallow depth of field, and soft shadows. The end result is a stunning simulated visual with breathtaking photorealism.</p>
<p>The popularity in 3D software that utilize ray tracing-based rendering has grown over the years as its realism is second to none compared with other light-based algorithms, and difficult to recreate with rendering methods such as scanline rendering. Its main drawback is performance. Depending on a scene’s complexity, the <strong>ray tracing algorithm can be tremendously taxing on your workstation, especially if used for real-time rendering.</strong></p>
<p>Scanline rendering relies on the number of pixels on screen in a single scene whereas ray tracing relies on each ray of light (no matter where it sits in a scene) and renders each of them and its reflections, or bounces, individually. When put to its maximum settings, a render can give way to almost true-to-life photorealism. However, this is usually made impossible for most consumer workstations without a <a href="https://renderpool.net/blog/best-online-render-farm/">render farm</a> due to the computation power necessary.</p>
<p>That said, it’s an extremely adjustable process and its settings can be updated and altered in real time, using tools like path tracing and refraction that limit the amount of processing power needed to render each light path. If you have the time and patience, ray tracing can help you generate beautiful CGI and VFX for film and television. It’s a bit less suited for real-time applications such as gaming and VR, for now.</p>
</li>
<li>
<p>Ray Casting
Once used interchangeably with ray tracing, this technique performs very different functions and serves a distinctively different purpose. Ray casting is a basic algorithm that allows for rendering three-dimensional spaces without recursive light tracing that simulates real-world light properties. This means it eliminates rendering processes like reflections, refractions, and shadow falloff, allowing for high-speed, real-time applications like 3D video games and VR rendering.</p>
<p>With clever use of texture and bump mapping, ray casting-based rendering can allow for quick and simple real-time rendering of solid planar and non-planar models. This technique was regularly used in early 3D video games like <em>Doom</em> and <em>Wolfenstein 3D</em>.</p>
<p><strong>Ray Tracing vs. Ray Casting</strong></p>
<p>Natural light rays are emitted until they are met with a surface, which may reflect, refract, or absorb the rays. If reflected, the light ray bounces in one or many directions leading to more light rays. If absorbed, the light’s intensity decreases. If the surface is transparent or translucent, the surface refracts the light into itself and potentially even changes the color of the surface. <strong>Ray tracing relies on these processes while ray casting does not.</strong></p>
</li>
<li>
<p>Refraction
Refraction is a technique that allows light rays to bend on transparent or translucent surfaces when rendering. As a light ray interacts with a transparent material, it will offset the ray’s path inside the material before exiting the other side. Because this algorithm is taken into consideration when employing ray tracing, it can still be utilized and customized independently in the rendering settings of your 3D software.</p>
</li>
<li>
<p>Texture Mapping
Texture mapping is the process of applying high-quality details, surface texture, or color information to a 3D model. “Texture maps” can be created using digitally painted, photographed, or manipulated images from 2D photo manipulation software like Photoshop, Illustrator, and GIMP or materials painted directly onto 3D surfaces using advanced painting software like Substance Painter or ZBrush. These maps can then be wrapped to UV coordinates of a 3D model and applied or “mapped” to them, projecting the image map onto the model. A simplified analogy of this is to think of the model as a Christmas present and the texture map as colorful wrapping paper.</p>
<p>There are several types of rasterization (vector-to-pixel transformation) techniques for this process, allowing for different results depending on what you’re looking for:</p>
<ul>
<li>Forward texture mapping</li>
<li>Affine mapping</li>
<li>Multitexturing</li>
<li>Inverse mapping</li>
</ul>
<p>It’s also possible to apply a similar type of mapping with light paths called render mapping, or “baking.”  This technique takes complex light paths or rays, renders them to a high resolution, and then repurposes them as surface textures to be UV mapped onto a model or object at a later time.</p>
<p>This process is regularly used in video game development to reduce polygon counts and rendering costs, allowing for more real-time application and utilization.</p>
</li>
<li>
<p>Bump Mapping
Somewhat similar to texture mapping, bump mapping is the process of simulating bumps, protuberances, and displacements on the surface of a 3D model. The intent is to further give the illusion of realism by simulating erosion, volume, or damage to the surface geometry of an object.</p>
<p>The resulting effect is only cosmetic once rendered. The underlying surface geometry is not modified in any way, only appearing to have been. This processed result, or “surface normal,” is then recalculated to interact with light, reflection, and shadow correctly, giving the illusion of detail where there is none.</p>
<p><strong>Bump mapping is extremely useful and not processor-intensive</strong>, making the result quick to produce. The only drawback is that realism is lost when reflective surfaces are involved in a scene. The surface normal of a model, not the surface geometry of the model itself, is augmented. Therefore, shadows and silhouettes will not reflect the displacement of the surface normal on other surfaces. A simple solution to this limitation is to use displacement mapping, where a height map can be applied directly to the surface geometry of a 3D model.</p>
</li>
<li>
<p>Volumetric Lighting (Fog, Smoke, and Steam
In 3D rendering software, volumetric lighting is a very useful process that allows for effects utilizing light as an object to create assets like fog, smoke, or steam. This technique allows for enhancing the lighting and distance lighting effects in a rendered scene by using transparent objects that aren’t rendered with surface geometry but as a container of point vertices or “volume.” Sunbeams bursting through a window is a standard example of volumetric lighting while warm or steaming ground after a rainstorm could be an example of fog.</p>
</li>
<li>
<p>Depth of Field
When your scene is complete and you are ready to render, the next object you will need to place in your scene’s field is a camera. Your camera’s settings, depending on your software, is very customizable — sometimes, right down to the type of lens you wish to use. Another customizable function is the camera’s depth of field as well as the environment of a scene’s depth of field.
Depth of field, or DOF, is the distance between the closest and farthest objects in a scene that are in sharp focus. This algorithm is based on your camera’s focal length, subject distance, and lens aperture. All of which are fully programmable and modifiable.
Usually for renders, it’s more for an artistic effect than a technical achievement and is meant to visually impress.</p>
</li>
<li>
<p>Motion Blur
Motion blur is another feature for your software’s internal camera. This process is the frame smearing of moving objects in a rendered scene, usually used for film VFX and animation. With a real camera, this effect is much easier to create using long exposures and shutter speed. With CGI, it’s a bit more complicated. When rendering in 3D software, frames are not taken in long exposure shots and your camera has an incredibly swift shutter speed that cannot imitate the effect made by real-world materials on its own. One way this effect can be simulated is by applying geometry shaders to objects that perform geometry extrusion when the camera is moved in a scene.<br>
This process simulates lifelike smearing as seen in film and photography and is used to great effect in video games and animation.</p>
</li>
</ol>

                        </div>
                        
                        

                    </div>
                    

                    

                    

                    <div class="col-md-3">

                        

                        

<div class="panel panel-default sidebar-menu">

    <div class="panel-heading">
      <h3 class="panel-title">Search</h3>
    </div>

    <div class="panel-body">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" role="search">
            <div class="input-group">
                <input type="search" name="q" class="form-control" placeholder="Search">
                <input type="hidden" name="sitesearch" value="https://the-cruel-world.github.io/">
                <span class="input-group-btn">
                    <button type="submit" class="btn btn-template-main"><i class="fas fa-search"></i></button>
                </span>
            </div>
        </form>
    </div>
</div>



















                        

                    </div>
                    

                    

                </div>
                

            </div>
            
        </div>
        

        <footer id="footer">
    <div class="container">

        
        <div class="col-md-4 col-sm-6">
            <h4>About us</h4>

            <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>

            <hr class="hidden-md hidden-lg hidden-sm">

        </div>
        
        

        <div class="col-md-4 col-sm-6">

             
            <h4>Recent posts</h4>

            <div class="blog-entries">
                
                <div class="item same-height-row clearfix">
                    <div class="image same-height-always">
                        <a href="https://the-cruel-world.github.io/blog/2021/03/06/first_post/">
                          
                            <img src="/img/placeholder.png" class="img-responsive" alt="First_post">
                          
                        </a>
                    </div>
                    <div class="name same-height-always">
                        <h5><a href="https://the-cruel-world.github.io/blog/2021/03/06/first_post/">First_post</a></h5>
                    </div>
                </div>
                
                <div class="item same-height-row clearfix">
                    <div class="image same-height-always">
                        <a href="https://the-cruel-world.github.io/blog/2021/03/06/second_post/">
                          
                            <img src="/img/placeholder.png" class="img-responsive" alt="Modern Rendering engine">
                          
                        </a>
                    </div>
                    <div class="name same-height-always">
                        <h5><a href="https://the-cruel-world.github.io/blog/2021/03/06/second_post/">Modern Rendering engine</a></h5>
                    </div>
                </div>
                
            </div>

            <hr class="hidden-md hidden-lg">
             

        </div>
        

        
        <div class="col-md-4 col-sm-6">

          <h4>Contact</h4>

            <p class="text-uppercase"><strong>Universal Ltd.</strong>
        <br>13/25 New Avenue
        <br>Newtown upon River
        <br>45Y 73J
        <br>England
        <br>
        <strong>Great Britain</strong>
      </p>
      

            <a href="/contact" class="btn btn-small btn-template-main">Go to contact page</a>

            <hr class="hidden-md hidden-lg hidden-sm">

        </div>
        
        

    </div>
    
</footer>







<div id="copyright">
    <div class="container">
        <div class="col-md-12">
            
            <p class="pull-left">Copyright (c) 2020 - 2021, The Cruel World; all rights reserved.</p>
            
            <p class="pull-right">
              Template by <a href="https://bootstrapious.com/p/universal-business-e-commerce-template">Bootstrapious</a>.
              

              Ported to Hugo by <a href="https://github.com/devcows/hugo-universal-theme">DevCows</a>.
            </p>
        </div>
    </div>
</div>





    </div>
    

    
<script src="//code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/Counter-Up/1.0/jquery.counterup.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-parallax/1.1.3/jquery-parallax.js"></script>


<script src="//maps.googleapis.com/maps/api/js?key=AIzaSyDEBKV4snlTjZsEfAk-b9oyTFIf-d0jRN0&v=3.exp"></script>

<script src="/js/hpneo.gmaps.js"></script>
<script src="/js/gmaps.init.js"></script>

<script src="/js/front.js"></script>


<script src="/js/owl.carousel.min.js"></script>



  </body>
</html>
